Fix const bug in function git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@113684 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/__functional_base b/include/__functional_base index 769979e..6c74032 100644 --- a/include/__functional_base +++ b/include/__functional_base
@@ -306,7 +306,7 @@ >::type __invoke(_R (_T::*__f)(_Param...) const, _T1&& __t1, _Arg&& ...__arg) { - return (_STD::forward<_T>(__t1).*__f)(_STD::forward<_Arg>(__arg)...); + return (_STD::forward<const _T>(__t1).*__f)(_STD::forward<_Arg>(__arg)...); } template <class _R, class _T, class _T1, class ..._Param, class ..._Arg> @@ -319,7 +319,7 @@ >::type __invoke(_R (_T::*__f)(_Param...) volatile, _T1&& __t1, _Arg&& ...__arg) { - return (_STD::forward<_T>(__t1).*__f)(_STD::forward<_Arg>(__arg)...); + return (_STD::forward<volatile _T>(__t1).*__f)(_STD::forward<_Arg>(__arg)...); } template <class _R, class _T, class _T1, class ..._Param, class ..._Arg> @@ -332,7 +332,7 @@ >::type __invoke(_R (_T::*__f)(_Param...) const volatile, _T1&& __t1, _Arg&& ...__arg) { - return (_STD::forward<_T>(__t1).*__f)(_STD::forward<_Arg>(__arg)...); + return (_STD::forward<const volatile _T>(__t1).*__f)(_STD::forward<_Arg>(__arg)...); } // second bullet